package main

import (
	"fmt"
)

type Cat struct {
	Name string
	Age int
}

func main() {

	// 定义一个存放任意数据类型的管道 3个数据
	var allChan chan interface{}
	cat := Cat{"狸花猫", 2,}
	allChan = make(chan interface{}, 3)
	allChan <- 10
	allChan <- "tom jack"
	allChan <- cat

	// 我们希望获得管道中的第三个元素，则先将前两个推出
	<- allChan
	<- allChan

	newCat := <- allChan
	fmt.Printf("newcat=%T, newCat=%v\n", newCat, newCat)
	a := newCat.(Cat)
	fmt.Printf("newCat.Name=%v\n", a.Name)

}